/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.com.dados.financeiro;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import src.com.dados.Conexao;
import src.com.negocio.financeiro.Brinde;

/**
 *
 * @author Felipe
 */
public class BrindesDao {
    
    public boolean cadastraBrinde(Brinde brinde) {
        Connection con;

        con = Conexao.getInstance().getCon();
        String sql = "INSERT INTO brinde (codigo_bri, tipo_bri, nome, quantidade) values (?,?,?,?)";
        PreparedStatement pstmt;

        try {
            // cria um preparedStatement
            pstmt = con.prepareStatement(sql);

            // preenche os valores
            pstmt.setInt(1, brinde.getCodigo());
            pstmt.setString(2, brinde.getTipoBrinde());
            pstmt.setString(3, brinde.getNome());
            pstmt.setInt(4, brinde.getQuantidade());
            
            pstmt.executeUpdate();

            System.out.println("Brinde gravado!");
            return true;
        } catch (SQLException e) {
        }
        return false;
    }

    public Brinde buscarBrinde(int codigo) throws SQLException {
        Connection con;

        con = Conexao.getInstance().getCon();
        String sql = "SELECT * FROM brinde WHERE codigo_bri = " + codigo;

        try {
            Statement stm;
            stm = con.createStatement();
            ResultSet rs = stm.executeQuery(sql);

            if (rs.next()) {
                Brinde brinde = new Brinde();
                brinde.setCodigo(codigo);
                brinde.setTipoBrinde(rs.getString("tipo_bri"));
                brinde.setNome(rs.getString("nome"));
                brinde.setQuantidade(rs.getInt("quantidade"));
                
                return brinde;
            }
        } catch (SQLException e) {
            System.out.println(e);
        }
        return null;
    }

    public boolean excluirBrinde(int codigo) throws SQLException {
        Connection con;

        con = Conexao.getInstance().getCon();
        String sql = "DELETE FROM brinde WHERE codigo_bri = " + codigo;

        try {
            Statement stm;
            stm = con.createStatement();
            stm.execute(sql);
            return true;

        } catch (SQLException e) {
            System.out.println(e);
        }
        return false;
    }

    public boolean atualizarBrinde(Brinde brinde) {
        Connection con = Conexao.getInstance().getCon();
        
        String sql = "UPDATE brinde SET tipo_bri=?, nome=?, quantidade=? WHERE codigo_bri=?;";
        PreparedStatement pstmt;

        try {
            // cria um preparedStatement
            pstmt = con.prepareStatement(sql);

            // preenche os valores
            pstmt.setString(1, brinde.getTipoBrinde());
            pstmt.setString(2, brinde.getNome());
            pstmt.setInt(3, brinde.getQuantidade());
            
            pstmt.setInt(8, brinde.getCodigo());

            pstmt.executeUpdate();

            System.out.println("Atualizacao realizada!");
            return true;
        } catch (SQLException e) {
            System.out.println(e);
        }
        return false;
    }
}